package com.example.demo.controller;

import cn.hutool.core.io.IoUtil;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.activation.MimetypesFileTypeMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Random;

/**
 * <p>
 * TestContoller
 * </p>
 *
 * @author flyduck
 * @since 2023/8/17
 */
@Controller
public class TestContoller {


    @RequestMapping("/1.0.0/{hsa}")
    public void hsa(@PathVariable("hsa")String hsa, HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        if (hsa.equals("hsa-fsi-9001")) {
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"signinoutb\": {\n" +
                    "\t\t\t\t\"sign_no\": \"3415202407104992057\",\n" +
                    "\t\t\t\t\"sign_time\": 1720574558108\n" +
                    "\t\t\t}\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"err_msg\": \"success\",\n" +
                    "\t\t\"inf_refmsgid\": \"341522202407100922380537074669\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117205745580952564d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-1101")){
//            response.getWriter().write("{\n" +
//                    "\t\"body\": {\n" +
//                    "\t\t\"output\": {\n" +
//                    "\t\t\t\"idetinfo\": [],\n" +
//                    "\t\t\t\"baseinfo\": {\n" +
//                    "\t\t\t\t\"certno\": \"342425199711050013\",\n" +
//                    "\t\t\t\t\"psn_no\": \"34150000000020513815\",\n" +
//                    "\t\t\t\t\"gend\": \"1\",\n" +
//                    "\t\t\t\t\"naty\": \"01\",\n" +
//                    "\t\t\t\t\"brdy\": 878659200000,\n" +
//                    "\t\t\t\t\"psn_cert_type\": \"01\",\n" +
//                    "\t\t\t\t\"psn_name\": \"陈鹏\",\n" +
//                    "\t\t\t\t\"age\": 26.3\n" +
//                    "\t\t\t},\n" +
//                    "\t\t\t\"insuinfo\": [\n" +
//                    "\t\t\t\t{\n" +
//                    "\t\t\t\t\t\"insuplc_admdvs\": \"341523\",\n" +
//                    "\t\t\t\t\t\"psn_insu_date\": 1609430400000,\n" +
//                    "\t\t\t\t\t\"cvlserv_flag\": \"0\",\n" +
//                    "\t\t\t\t\t\"balc\": 2198.73,\n" +
//                    "\t\t\t\t\t\"psn_type\": \"1101\",\n" +
//                    "\t\t\t\t\t\"emp_name\": \"舒城县中医院\",\n" +
//                    "\t\t\t\t\t\"psn_insu_stas\": \"1\",\n" +
//                    "\t\t\t\t\t\"insutype\": \"310\"\n" +
//                    "\t\t\t\t}\n" +
//                    "\t\t\t]\n" +
//                    "\t\t},\n" +
//                    "\t\t\"infcode\": 0,\n" +
//                    "\t\t\"inf_refmsgid\": \"341503202407081818510535547740\"\n" +
//                    "\t},\n" +
//                    "\t\"code\": 200,\n" +
//                    "\t\"csbCode\": 200,\n" +
//                    "\t\"message\": \"SUCCESS\",\n" +
//                    "\t\"requestId\": \"ac11000117204339312931825d00aa\",\n" +
//                    "\t\"state\": {}\n" +
//                    "}");

            response.getWriter().write("{\n" +
                    "\t\"code\":200,\n" +
                    "\t\"csbCode\":200,\n" +
                    "\t\"requestId\":\"adadad\",\n" +
                    "\t\"state\":{},\n" +
                    "\t\"body\":{\n" +
                    "\t\t\"infcode\":-1,\n" +
                    "\t\t\"err_msg\":\"FSI-调用业务基础子系统获取人员信息失败:该参保人的基本信息为空\"\n" +
                    "\t},\n" +
                    "\t\"message\":\"SUCCESS\"\t\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2201")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"data\": {\n" +
                    "\t\t\t\t\"psn_no\": \"34150000000020513815\",\n" +
                    "\t\t\t\t\"mdtrt_id\": \"34152024070840288288\",\n" +
                    "\t\t\t\t\"ipt_otp_no\": \"342425199711050013\"\n" +
                    "\t\t\t}\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341502202407081618410535497087\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117204267207746786d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2203")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341503202407101150050537254182\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117205834054494646d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2204")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"result\": [\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"bas_medn_flag\": \"0\",\n" +
                    "\t\t\t\t\t\"med_chrgitm_type\": \"09\",\n" +
                    "\t\t\t\t\t\"det_item_fee_sumamt\": 380,\n" +
                    "\t\t\t\t\t\"hi_nego_drug_flag\": \"0\",\n" +
                    "\t\t\t\t\t\"fulamt_ownpay_amt\": 0,\n" +
                    "\t\t\t\t\t\"cnt\": 20,\n" +
                    "\t\t\t\t\t\"pric\": 19,\n" +
                    "\t\t\t\t\t\"feedetl_sn\": \"1807727949328916481\",\n" +
                    "\t\t\t\t\t\"inscp_scp_amt\": 342,\n" +
                    "\t\t\t\t\t\"drt_reim_flag\": \"0\",\n" +
                    "\t\t\t\t\t\"overlmt_amt\": 0,\n" +
                    "\t\t\t\t\t\"pric_uplmt_amt\": 999999,\n" +
                    "\t\t\t\t\t\"selfpay_prop\": 0.1,\n" +
                    "\t\t\t\t\t\"preselfpay_amt\": 38,\n" +
                    "\t\t\t\t\t\"lmt_used_flag\": \"0\",\n" +
                    "\t\t\t\t\t\"chrgitm_lv\": \"02\"\n" +
                    "\t\t\t\t}\n" +
                    "\t\t\t]\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341503202407101148170537253535\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117205832977338371d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2206")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"setlinfo\": {\n" +
                    "\t\t\t\t\"cvlserv_pay\": 0,\n" +
                    "\t\t\t\t\"cvlserv_flag\": \"0\",\n" +
                    "\t\t\t\t\"med_type\": \"12\",\n" +
                    "\t\t\t\t\"naty\": \"01\",\n" +
                    "\t\t\t\t\"brdy\": 878659200000,\n" +
                    "\t\t\t\t\"psn_cash_pay\": 0.01,\n" +
                    "\t\t\t\t\"certno\": \"342425199711050013\",\n" +
                    "\t\t\t\t\"hifmi_pay\": 0,\n" +
                    "\t\t\t\t\"psn_no\": \"34150000000020513815\",\n" +
                    "\t\t\t\t\"act_pay_dedc\": 0,\n" +
                    "\t\t\t\t\"mdtrt_cert_type\": \"02\",\n" +
                    "\t\t\t\t\"balc\": 2197.91,\n" +
                    "\t\t\t\t\"medins_setl_id\": \"H00000000001202407121735391234\",\n" +
                    "\t\t\t\t\"psn_cert_type\": \"01\",\n" +
                    "\t\t\t\t\"hifob_pay\": 0,\n" +
                    "\t\t\t\t\"acct_mulaid_pay\": 0,\n" +
                    "\t\t\t\t\"oth_pay\": 0,\n" +
                    "\t\t\t\t\"medfee_sumamt\": 0.82,\n" +
                    "\t\t\t\t\"hifes_pay\": 0,\n" +
                    "\t\t\t\t\"gend\": \"1\",\n" +
                    "\t\t\t\t\"mdtrt_id\": \"34152024071540682574\",\n" +
                    "\t\t\t\t\"fund_pay_sumamt\": 0,\n" +
                    "\t\t\t\t\"acct_pay\": 0.82,\n" +
                    "\t\t\t\t\"fulamt_ownpay_amt\": 0.01,\n" +
                    "\t\t\t\t\"hosp_part_amt\": 0,\n" +
                    "\t\t\t\t\"psn_name\": \"陈鹏\",\n" +
                    "\t\t\t\t\"insutype\": \"310\",\n" +
                    "\t\t\t\t\"inscp_scp_amt\": 0.74,\n" +
                    "\t\t\t\t\"maf_pay\": 0,\n" +
                    "\t\t\t\t\"psn_part_amt\": 0.82,\n" +
                    "\t\t\t\t\"pool_prop_selfpay\": 0,\n" +
                    "\t\t\t\t\"psn_type\": \"1101\",\n" +
                    "\t\t\t\t\"overlmt_selfpay\": 0,\n" +
                    "\t\t\t\t\"hifp_pay\": 0,\n" +
                    "\t\t\t\t\"preselfpay_amt\": 0.08,\n" +
                    "\t\t\t\t\"age\": 26,\n" +
                    "\t\t\t\t\"clr_type\": \"11\"\n" +
                    "\t\t\t},\n" +
                    "\t\t\t\"setldetail\": [\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"fund_pay_type\": \"310201\",\n" +
                    "\t\t\t\t\t\"fund_payamt\": 0.82,\n" +
                    "\t\t\t\t\t\"inscp_scp_amt\": 0.74,\n" +
                    "\t\t\t\t\t\"fund_pay_type_name\": \"310201\"\n" +
                    "\t\t\t\t}\n" +
                    "\t\t\t]\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341503202407151143270540697122\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117210150053302048d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-5201")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"mdtrtinfo\": [\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"med_type\": \"11\",\n" +
                    "\t\t\t\t\t\"adm_dept_codg\": \"10000002\",\n" +
                    "\t\t\t\t\t\"opter_id\": \"10050\",\n" +
                    "\t\t\t\t\t\"flxempe_flag\": \"0\",\n" +
                    "\t\t\t\t\t\"psn_no\": \"34150000000020513815\",\n" +
                    "\t\t\t\t\t\"tel\": \"8678346\",\n" +
                    "\t\t\t\t\t\"gend\": \"1\",\n" +
                    "\t\t\t\t\t\"mdtrt_id\": \"34152024071640751945\",\n" +
                    "\t\t\t\t\t\"begntime\": 1720368000000,\n" +
                    "\t\t\t\t\t\"adm_dept_name\": \"门诊妇产科\",\n" +
                    "\t\t\t\t\t\"insutype\": \"310\",\n" +
                    "\t\t\t\t\t\"pre_pay_flag\": \"1\",\n" +
                    "\t\t\t\t\t\"ipt_otp_no\": \"18780FCB1E3C8375F\",\n" +
                    "\t\t\t\t\t\"oprn_oprt_name\": \"汪庆华\",\n" +
                    "\t\t\t\t\t\"psn_type\": \"1101\",\n" +
                    "\t\t\t\t\t\"cvlserv_flag\": \"0\",\n" +
                    "\t\t\t\t\t\"emp_name\": \"舒城县中医院\",\n" +
                    "\t\t\t\t\t\"naty\": \"01\",\n" +
                    "\t\t\t\t\t\"brdy\": 878659200000,\n" +
                    "\t\t\t\t\t\"inhosp_stas\": \"1\",\n" +
                    "\t\t\t\t\t\"certno\": \"342425199711050013\",\n" +
                    "\t\t\t\t\t\"mdtrt_cert_type\": \"02\",\n" +
                    "\t\t\t\t\t\"opter_name\": \"汪庆华\",\n" +
                    "\t\t\t\t\t\"psn_cert_type\": \"01\",\n" +
                    "\t\t\t\t\t\"opt_time\": 1721098978000,\n" +
                    "\t\t\t\t\t\"endtime\": 1720368000000,\n" +
                    "\t\t\t\t\t\"psn_name\": \"陈鹏\",\n" +
                    "\t\t\t\t\t\"insu_optins\": \"341523\",\n" +
                    "\t\t\t\t\t\"age\": 26\n" +
                    "\t\t\t\t}\n" +
                    "\t\t\t]\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341503202407221353320546250132\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117216276124017227d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-5301")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"feedetail\": [\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"opsp_dise_code\":\"A001\",\n" +
                    "\t\t\t\t\t\"opsp_dise_name\":\"糖尿病\",\n" +
                    "\t\t\t\t\t\"begndate\":\"1722873600\",\n" +
                    "\t\t\t\t\t\"enddate\":\"1722873600\"\n" +
                    "\t\t\t\t},\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"opsp_dise_code\":\"A002\",\n" +
                    "\t\t\t\t\t\"opsp_dise_name\":\"高血糖\",\n" +
                    "\t\t\t\t\t\"begndate\":\"1722873600\",\n" +
                    "\t\t\t\t\t\"enddate\":\"1722873600\"\n" +
                    "\t\t\t\t}\n" +
                    "\t\t\t]\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341503202407221349060546248733\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117216273467076864d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }
//        else if(hsa.equals("hsa-fsi-3102")){
//            response.getWriter().write("{\n" +
//                    "\t\"body\": {\n" +
//                    "\t\t\"output\": {\n" +
//                    "\t\t\t\"result\": {\n" +
//                    "\t\t\t\t\"jr_id\": \"11\",\n" +
//                    "\t\t\t\t\"rule_id\": \"R01\",\n" +
//                    "\t\t\t\t\"rule_name\": \"单次就诊性别用药禁忌 事中\",\n" +
//                    "\t\t\t\t\"vola_cont\": \"【妇康片/炔诺配(挂)/炔诺酮片】为女性使用药物，参保人当前信息显示性别为:男\",\n" +
//                    "\t\t\t\t\"patn_id\": \"34150000000020513815\",\n" +
//                    "\t\t\t\t\"mdtrt_id\": \"8678346\",\n" +
//                    "\t\t\t\t\"vola_amt\": \"33\",\n" +
//                    "\t\t\t\t\"vola_amt_stas\": \"33\",\n" +
//                    "\t\t\t\t\"sev_deg\": \"2\",\n" +
//                    "\t\t\t\t\"vola_evid\": \"用于女性口服避孕。\",\n" +
//                    "\t\t\t\t\"vola_bhvr_type\": \"2\",\n" +
//                    "\t\t\t\t\"task_id\": \"测试任务id\"\n" +
//                    "\t\t\t}\n" +
//                    "\t\t},\n" +
//                    "\t\t\"infcode\": 0,\n" +
//                    "\t\t\"inf_refmsgid\": \"341503202407221353320546250132\"\n" +
//                    "\t},\n" +
//                    "\t\"code\": 200,\n" +
//                    "\t\"csbCode\": 200,\n" +
//                    "\t\"message\": \"SUCCESS\",\n" +
//                    "\t\"requestId\": \"ac11000117216276124017227d00aa\",\n" +
//                    "\t\"state\": {}\n" +
//                    "}");
//        }
        else if(hsa.equals("hsa-fsi-3102")){
            response.getWriter().write("{\n" +
                    "    \"body\": {\n" +
                    "        \"output\": {\n" +
                    "            \"result\": []\n" +
                    "        },\n" +
                    "        \"infcode\": 0,\n" +
                    "        \"inf_refmsgid\": \"349900202407291606420521394803\"\n" +
                    "    },\n" +
                    "    \"code\": 200,\n" +
                    "    \"csbCode\": 200,\n" +
                    "    \"message\": \"SUCCESS\",\n" +
                    "    \"requestId\": \"ac11000117222404027175374d0115\",\n" +
                    "    \"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2207")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"setlinfo\": {\n" +
                    "\t\t\t\t\"setl_time\": 1721113330000,\n" +
                    "\t\t\t\t\"cvlserv_pay\": 0,\n" +
                    "\t\t\t\t\"cvlserv_flag\": \"0\",\n" +
                    "\t\t\t\t\"med_type\": \"11\",\n" +
                    "\t\t\t\t\"naty\": \"01\",\n" +
                    "\t\t\t\t\"brdy\": 878659200000,\n" +
                    "\t\t\t\t\"psn_cash_pay\": 0,\n" +
                    "\t\t\t\t\"certno\": \"342425199711050013\",\n" +
                    "\t\t\t\t\"hifmi_pay\": 0,\n" +
                    "\t\t\t\t\"psn_no\": \"34150000000020513815\",\n" +
                    "\t\t\t\t\"act_pay_dedc\": 0.74,\n" +
                    "\t\t\t\t\"mdtrt_cert_type\": \"01\",\n" +
                    "\t\t\t\t\"balc\": 2197.91,\n" +
                    "\t\t\t\t\"medins_setl_id\": \"H00000000001202407011235391234\",\n" +
                    "\t\t\t\t\"psn_cert_type\": \"01\",\n" +
                    "\t\t\t\t\"hifob_pay\": 0,\n" +
                    "\t\t\t\t\"acct_mulaid_pay\": 0,\n" +
                    "\t\t\t\t\"clr_way\": \"1\",\n" +
                    "\t\t\t\t\"oth_pay\": 0,\n" +
                    "\t\t\t\t\"medfee_sumamt\": 0.82,\n" +
                    "\t\t\t\t\"hifes_pay\": 0,\n" +
                    "\t\t\t\t\"gend\": \"1\",\n" +
                    "\t\t\t\t\"mdtrt_id\": \"34152024071640751945\",\n" +
                    "\t\t\t\t\"fund_pay_sumamt\": 0,\n" +
                    "\t\t\t\t\"acct_pay\": 0.82,\n" +
                    "\t\t\t\t\"fulamt_ownpay_amt\": 0,\n" +
                    "\t\t\t\t\"setl_id\": \"34152024071626177862\",\n" +
                    "\t\t\t\t\"hosp_part_amt\": 0,\n" +
                    "\t\t\t\t\"psn_name\": \"陈鹏\",\n" +
                    "\t\t\t\t\"insutype\": \"310\",\n" +
                    "\t\t\t\t\"inscp_scp_amt\": 0.74,\n" +
                    "\t\t\t\t\"maf_pay\": 0,\n" +
                    "\t\t\t\t\"psn_part_amt\": 0.82,\n" +
                    "\t\t\t\t\"pool_prop_selfpay\": 0,\n" +
                    "\t\t\t\t\"clr_optins\": \"341523\",\n" +
                    "\t\t\t\t\"psn_type\": \"1101\",\n" +
                    "\t\t\t\t\"overlmt_selfpay\": 0,\n" +
                    "\t\t\t\t\"hifp_pay\": 0,\n" +
                    "\t\t\t\t\"preselfpay_amt\": 0.08,\n" +
                    "\t\t\t\t\"age\": 26,\n" +
                    "\t\t\t\t\"clr_type\": \"11\"\n" +
                    "\t\t\t},\n" +
                    "\t\t\t\"setldetail\": [\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"fund_pay_type\": \"310201\",\n" +
                    "\t\t\t\t\t\"fund_payamt\": 0.82,\n" +
                    "\t\t\t\t\t\"inscp_scp_amt\": 0.74,\n" +
                    "\t\t\t\t\t\"fund_pay_type_name\": \"310201\"\n" +
                    "\t\t\t\t}\n" +
                    "\t\t\t]\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": -1,\n" +
                    "\t\t\"inf_refmsgid\": \"341524202407161502110541609804\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117211133298856344d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2205")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341523202407101154090537255249\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117205836497295035d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2208")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"output\": {\n" +
                    "\t\t\t\"setlinfo\": {\n" +
                    "\t\t\t\t\"setl_time\": 1721115041000,\n" +
                    "\t\t\t\t\"cvlserv_pay\": 0,\n" +
                    "\t\t\t\t\"cvlserv_flag\": \"0\",\n" +
                    "\t\t\t\t\"med_type\": \"11\",\n" +
                    "\t\t\t\t\"naty\": \"01\",\n" +
                    "\t\t\t\t\"brdy\": 878659200000,\n" +
                    "\t\t\t\t\"psn_cash_pay\": 0,\n" +
                    "\t\t\t\t\"certno\": \"342425199711050013\",\n" +
                    "\t\t\t\t\"hifmi_pay\": 0,\n" +
                    "\t\t\t\t\"psn_no\": \"34150000000020513815\",\n" +
                    "\t\t\t\t\"act_pay_dedc\": -0.74,\n" +
                    "\t\t\t\t\"mdtrt_cert_type\": \"01\",\n" +
                    "\t\t\t\t\"balc\": 2198.73,\n" +
                    "\t\t\t\t\"medins_setl_id\": \"H00000000001202407081008361234\",\n" +
                    "\t\t\t\t\"psn_cert_type\": \"01\",\n" +
                    "\t\t\t\t\"hifob_pay\": 0,\n" +
                    "\t\t\t\t\"acct_mulaid_pay\": 0,\n" +
                    "\t\t\t\t\"clr_way\": \"1\",\n" +
                    "\t\t\t\t\"oth_pay\": 0,\n" +
                    "\t\t\t\t\"medfee_sumamt\": -0.82,\n" +
                    "\t\t\t\t\"hifes_pay\": 0,\n" +
                    "\t\t\t\t\"gend\": \"1\",\n" +
                    "\t\t\t\t\"mdtrt_id\": \"34152024071640751945\",\n" +
                    "\t\t\t\t\"fund_pay_sumamt\": 0,\n" +
                    "\t\t\t\t\"acct_pay\": -0.82,\n" +
                    "\t\t\t\t\"fulamt_ownpay_amt\": 0,\n" +
                    "\t\t\t\t\"setl_id\": \"34152024071626180375\",\n" +
                    "\t\t\t\t\"psn_name\": \"陈鹏\",\n" +
                    "\t\t\t\t\"insutype\": \"310\",\n" +
                    "\t\t\t\t\"inscp_scp_amt\": -0.74,\n" +
                    "\t\t\t\t\"maf_pay\": 0,\n" +
                    "\t\t\t\t\"pool_prop_selfpay\": 0,\n" +
                    "\t\t\t\t\"clr_optins\": \"341523\",\n" +
                    "\t\t\t\t\"psn_type\": \"1101\",\n" +
                    "\t\t\t\t\"overlmt_selfpay\": 0,\n" +
                    "\t\t\t\t\"hifp_pay\": 0,\n" +
                    "\t\t\t\t\"preselfpay_amt\": -0.08,\n" +
                    "\t\t\t\t\"age\": 26,\n" +
                    "\t\t\t\t\"clr_type\": \"11\"\n" +
                    "\t\t\t},\n" +
                    "\t\t\t\"setldetail\": [\n" +
                    "\t\t\t\t{\n" +
                    "\t\t\t\t\t\"fund_pay_type\": \"310200\",\n" +
                    "\t\t\t\t\t\"fund_payamt\": -0.82,\n" +
                    "\t\t\t\t\t\"inscp_scp_amt\": -0.74,\n" +
                    "\t\t\t\t\t\"fund_pay_type_name\": \"城镇职工基本医疗保险个人账户基金\"\n" +
                    "\t\t\t\t}\n" +
                    "\t\t\t]\n" +
                    "\t\t},\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"inf_refmsgid\": \"341525202407161530410541637945\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117211150406932823d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }else if(hsa.equals("hsa-fsi-2202")){
            response.getWriter().write("{\n" +
                    "\t\"body\": {\n" +
                    "\t\t\"infcode\": 0,\n" +
                    "\t\t\"err_msg\": \"FSI-调用业务基础子系统门诊挂号撤销失败:根据传入的参数未查询到任何就诊登记信息[iptPsnSetlMgtBO_1579][outpatientDocInfoBO_279]\"\n" +
                    "\t},\n" +
                    "\t\"code\": 200,\n" +
                    "\t\"csbCode\": 200,\n" +
                    "\t\"message\": \"SUCCESS\",\n" +
                    "\t\"requestId\": \"ac11000117205838751515272d00aa\",\n" +
                    "\t\"state\": {}\n" +
                    "}");
        }
    }

    @RequestMapping("/api")
    public void api(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        if (read.contains("ehc.ehealthcode.verify")) {
            response.getWriter().write("{\n" +
                    "    \"app_id\": \"1402A0001XXTB0027\",\n" +
                    "    \"biz_content\": \"6F028DD89FED24581C4F3261477345316AA96951B2BFB1B2074EBEEB33ACEB799FC001A4DD8050CEF9D2586AB48CBE9C723C6007E1BCD627AD7C8246FD0390860D2861375EE54C20FA34692779EE0046541D867E0D689E7D26DF983386EB10D5A51D04E1AFA6F20DD280ACF0F90F670A87EED78D1CC5C85CCE36091332D50D17A37F6DAA6011E5664770281BF3C6B7F5757C3CB6BB9BBC37AB8B16263377673AA5BE61337DE5B8D468CF369BE7AB927CC375EBA5FBF24DFA7C655B78F842C1FDA563C999124ABBB8336FEEC9842E84E4D8ABA313806AF9F7699C711658EF1B7E4EB331A1466735B7DD9833172C64341C6891E84A37C2AF8F120B08030C5308C7A9A3ED12E1356E3389FF31AA8C2BC7E31C9831E495349D87FA5D443D2540746636CAE78518E22303DA44EE855E932B1C3FC6AD975C634A6AF88BFA141B1F90CF948D345532D6A0A474F20ABC730F4679DDF459AC39AECAD78B998B15E1600EB72FB4DB6C72DF522A47966D736577612A84A89284D6B5F54B5AB816A74C33611924010FA802341656DC78844402D94D8297307910565B262460C442D7DAF46E44CCBFD6988B0EA75BF699C2E5FA1EE235ADE88AEA4B29C6971ABCC006DA159F9FB9589AB52F3B4FA12BF40B3ECA959DA9CDE40FC20B392CC14FAD32B2373CFE1FC56DFEBFC4BF0C0CD9CF94DFB1B6562E7CEF5CB65040EE882161B2F8B60B91B2A429726066A7368EFBA785E70C88F33388A9CD17092D4386D3F0A6E92722013E5F2DD9263AE4E42F23A722C7843AC70BFAFBA6D000556D0A848EFDD349CABF8E2BE442A7AC58E0EB257E504FFF0414ACC7A562927660BBE659AFD8EA3D5A55E2B6C6E5252102F141ABC9E93C8AE4831399E714311778D11DAB6628BAE7ECA86DBA2132AAA33BB4522CADABAEC133FD79CD346D4D4D50BBC15EA7FF6E93D1DA76\",\n" +
                    "    \"digest\": \"5C1E076F6D70CD1B0CAAF4C225DB1822AD1BCB888E4DF5E65D283DFD413CA83F\",\n" +
                    "    \"digest_type\": \"SM3\",\n" +
                    "    \"enc_type\": \"SM4\",\n" +
                    "    \"method\": \"ehc.ehealthcode.verify\",\n" +
                    "    \"ret_code\": \"0000\",\n" +
                    "    \"ret_msg\": \"操作成功\",\n" +
                    "    \"term_id\": \"1402A0001STM0078\",\n" +
                    "    \"timestamp\": \"1720426503296\",\n" +
                    "    \"version\": \"1.0.0\"\n" +
                    "}");
        }else if(read.contains("ehc.ehealthcard.requery")){
            response.getWriter().write("{\n" +
                    "    \"app_id\": \"1402A0001XXTB0027\",\n" +
                    "    \"biz_content\": \"6F028DD89FED24581C4F3261477345316AA96951B2BFB1B2074EBEEB33ACEB799FC001A4DD8050CEF9D2586AB48CBE9C723C6007E1BCD627AD7C8246FD0390860D2861375EE54C20FA34692779EE0046541D867E0D689E7D26DF983386EB10D5A51D04E1AFA6F20DD280ACF0F90F670A87EED78D1CC5C85CCE36091332D50D17A37F6DAA6011E5664770281BF3C6B7F5757C3CB6BB9BBC37AB8B16263377673AA5BE61337DE5B8D468CF369BE7AB927CC375EBA5FBF24DFA7C655B78F842C1FDA563C999124ABBB8336FEEC9842E84E4D8ABA313806AF9F7699C711658EF1B7E4EB331A1466735B7DD9833172C64341C6891E84A37C2AF8F120B08030C5308C7A9A3ED12E1356E3389FF31AA8C2BC7E31C9831E495349D87FA5D443D2540746636CAE78518E22303DA44EE855E932B1C942605DD1546D6795668DE62617114E0ECE0F533A853FB3A3B009B149719700BDDF459AC39AECAD78B998B15E1600EB72FB4DB6C72DF522A47966D736577612A84A89284D6B5F54B5AB816A74C33611924010FA802341656DC78844402D94D8297307910565B262460C442D7DAF46E44CCBFD6988B0EA75BF699C2E5FA1EE235ADE88AEA4B29C6971ABCC006DA159F9FB9589AB52F3B4FA12BF40B3ECA959DA9CDE40FC20B392CC14FAD32B2373CFE1FC56DFEBFC4BF0C0CD9CF94DFB1B6562E7CEF5CB65040EE882161B2F8B60B91B2A6A0DB1F0C1C465F4EB892B209A5C4ACE6E3C304D727F08FAFA14C6CD30BAB3FCAB2194513FCCF98D78588F6BF08BC31446B66133E5BBADE5A0250F2C6400A7A57564EC4D1C62CCE2A679EB7F3BF7D161A76E059341FD7E69D5EFAE4BC542A75D94429914A41F89DBA538FB54D52102D92535B5766FB80E16847F56AB0840D0F12E81AB894FAF9FE6C8223DDF565D070922385F803837BE69A4CB55759E20D77606E73FD3D81BE6FC5A21F78509F171A\",\n" +
                    "    \"digest\": \"FB0D5477A3D928B284CBF035D23940FB24C1038F796B04E434456B460F3B7B01\",\n" +
                    "    \"digest_type\": \"SM3\",\n" +
                    "    \"enc_type\": \"SM4\",\n" +
                    "    \"method\": \"ehc.ehealthcard.requery\",\n" +
                    "    \"ret_code\": \"0000\",\n" +
                    "    \"ret_msg\": \"操作成功\",\n" +
                    "    \"term_id\": \"1402A0001STM0078\",\n" +
                    "    \"timestamp\": \"1720426912282\",\n" +
                    "    \"version\": \"1.0.0\"\n" +
                    "}");
        }
    }

    @RequestMapping("/Services/verify")
    public void verify(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("text/html; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");

        response.getWriter().write("{\"guid\":\"101235205\",\"parentid\":\"\",\"ehealth_card_id\":\"961F0F5EF0C47D8A54F6BEF0F9C9377B0E4DAA787341DCB8FAE32556B2EE8490\",\"mindex_id\":\"046A7B084510699B8E9CA76509926717E37616966C1CCEC9B6AD9B8BD8668F16\",\"wxid\":\"\",\"name\":\"邓强\",\"gender\":\"1\",\"mz\":\"97\",\"birthday\":\"1996-01-01 00:00:00\",\"id_type\":\"01\",\"id_no\":\"430522199601014894\",\"cellphone\":\"15200800297\",\"jkdabh\":\"\",\"jrzfzh\":\"\",\"hyzk\":\"\",\"whcd\":\"\",\"zy\":\"\",\"gzdw\":\"\",\"jtzz\":\"\",\"xxdz\":\"1\",\"rpc\":\"0\",\"hospitalid\":\"\",\"hospitalname\":\"\",\"biaobiaoshi\":\"\"}");
//        response.getWriter().write("查询失败，没有找到信息");
    }

    @RequestMapping("/ATMPay/Order")
    public void Order(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\"code\":\"SUCCESS\",\"message\":\"SUCCESS\",\"orderNo\":\"9D2980A44FCE417C80085E64C8828142\",\"url\":\"https://qr.alipay.com/bax02684pqhjylm2laed00ff\"}");
    }

    @RequestMapping("/ATMPay/Query")
    public void Query(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        long l = System.currentTimeMillis();
        if (l % 2 == 0) {
            response.getWriter().write("{\"code\":\"FAIL\",\"message\":\"订单查询失败System.Exception:  业务代码:Business Failed,错误描述:交易不存在,错误返回数据：{\\\"alipay_trade_query_response\\\":{\\\"msg\\\":\\\"Business Failed\\\",\\\"code\\\":\\\"40004\\\",\\\"out_trade_no\\\":\\\"CA1C8846382A40DB859BC532F5A4C01E\\\",\\\"sub_msg\\\":\\\"交易不存在\\\",\\\"sub_code\\\":\\\"ACQ.TRADE_NOT_EXIST\\\",\\\"receipt_amount\\\":\\\"0.00\\\",\\\"point_amount\\\":\\\"0.00\\\",\\\"buyer_pay_amount\\\":\\\"0.00\\\",\\\"invoice_amount\\\":\\\"0.00\\\"},\\\"sign\\\":\\\"PcmLbZs8ImMum+ek5cWw1y1W9diOW706trgaKqKz7LPUd+z22nrpEhLziWuxp86BNh4mHp1R4Po1SL0rtiCnM+7pbi/wLcEKqwOoqPAMNx+tHmLh9wmL7gIfRX3x1r9Xbg+5y2ZN/LDtzoYQ8+/YWRy7GV1GA0Mfzw17A8FEfd3MnOc/vLR7T86WMSh/xtJtg0Ye/1ziTNeLdarIcQt8AJL8RNwOUn0Td+e4KkpOmumwpcwfXKkTQKA6DGtM/NjiPmBher8dsrXENsXXuUzxzUD3Iqz3BSn8yJOKwXYKkdNqZqyxQ6EFz0FXicIiXvQkcCR5HWtIfah/vWQY7aPgJQ==\\\"}\\r\\n   at WindMill.Controllers.ZFBAuthController.AlipayCheck(String orderNo)\",\"tradeNo\":\"\",\"orderNo\":\"CA1C8846382A40DB859BC532F5A4C01E\"}");
        }else {
            response.getWriter().write("{\"code\":\"SUCCESS\",\"message\":\"SUCCESS\",\"tradeNo\":\"2024032122001497791438208685\",\"orderNo\":\"9D2980A44FCE417C80085E64C8828142\"}");
        }


    }

    @RequestMapping("/ATMPay/Cancel")
    public void Cancel(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\"code\":\"SUCCESS\",\"message\":\"SUCCESS\"}");
    }

    @RequestMapping("/httpapi/services.ashx")
    public void services(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\n" +
                "    \"app_id\": \"5ED3CD77ACAC4D8E882F26514315C060\", \n" +
                "    \"biz_content\": \"884D6CB6E22CC351F7CF95C9F1673EA3E4D93D69B7E3B3B6A7B063742D8C5E236CA2AAA2F502772842785FDC556ABF4F3DD3F78C5B6C3501F4ABB9403473C0B3C10C1081196874475EB3DE61470A4258E3896BD0384869F41A64B33E32F827C75F3C2C7C46832DA68B7B949E7923ED68B2A0E689D7A5BF1238021D9A4AD4305EADC5D29E4682235C9E481002F64E7C864C6D9E3AF2A59A015CC7FA01112DEEEF\", \n" +
                "    \"enc_type\": \"SM4\", \n" +
                "    \"method\": \"ehc.ehealthcode.verify\", \n" +
                "    \"code\": \"0000\", \n" +
                "    \"message\": \"查询失败，没有找到信息。\", \n" +
                "    \"digest\": \"40E9AF3CCC40AAC3A4C763D40F09A3C21E7269EB8B9DDFFE4968184603A689A9\", \n" +
                "    \"ditest_type\": \"SM3\", \n" +
                "    \"timestamp\": \"1561627035674\", \n" +
                "    \"version\": \"X.M.0.1\"\n" +
                "}");
    }

    @RequestMapping("/ebus/rio_fsi/fsi/api/hsecfc/localQrCodeQuery")
    public void localQrCodeQuery(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\n" +
                "    \"code\": 0,\n" +
                "    \"type\": \"success\",\n" +
                "    \"message\": \"成功\",\n" +
                "    \"data\": {\n" +
                "        \"userName\": \"田胜飞\",\n" +
                "        \"idNo\": \"610528199606156914\",\n" +
                "        \"idType\": \"01\",\n" +
                "        \"insuOrg\": \"610199\",\n" +
                "        \"ecIndexNo\": \"BE713C665C1CF583F31D1C0B4C31D744\",\n" +
                "        \"ecToken\": \"130000echh0r9ennp90f0f1a0a0000f69ecec5\",\n" +
                "        \"gender\": null,\n" +
                "        \"birthday\": null,\n" +
                "        \"nationality\": null,\n" +
                "        \"email\": null,\n" +
                "        \"chnlId\": \"1DBHJRS5I01E0F34A8C00000B959FA86\",\n" +
                "        \"ecQrCode\": \"4243858765101924377602610000\",\n" +
                "        \"authNo\": null\n" +
                "    }\n" +
                "}");
//        response.getWriter().write("{\"code\":\"1\",\"data\":\"请求服务器时间戳误差大于 180 秒\",\"msg\":\"不可通行\"}");
    }

    //{"method":"getPersonInfoByQrCode","headSign":"7b8b4eb7c7038d7c1352820b838bf9f9","bodySign":"41b65194988fe035ea11b7d2b22290a5","orgCode":"552e2400d3a2416fa7a534c7d13da516","appId":"c1004004de6c458f9462ccb38779f15f","signMode":"MD5","encryptMode":"DESede/ECB/ZeroBytePadding","signature":"","version":"V1.1.0","nonceStr":"0314318818","timestamp":"CFF8F6B79478AF49FC93916B3AF93831","body":{"qrCode":"4B9F2BBAD9C36F35E69081BC503DF12EBFDF4F930FC00AF22A517818B811527D:1","medStepCode":"000000","terminalCode":"xlsyysm001","appMode":"2"}}
    @RequestMapping("/api/do")
    public void apiDo(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\"datas\":{\"address\":\"河北省石家庄市新乐市，怡景苑小区\",\"birthday\":\"19921001\",\"birthplace\":\"\",\"currentAddress\":\"\",\"idCardTypeCode\":\"01\",\"idCode\":\"888075546EA7EC7398132ABBD35A7C8CF9A244F5773A9ADE\",\"language\":\"\",\"linkman\":\"\",\"maritalstatuscode\":\"\",\"name\":\"FBD293812FA5C29E91E400DB48B84DBE\",\"nation\":\"01\",\"nationality\":\"\",\"phone\":\"40CF6027DF9628B2A665790A52A2A656\",\"residentFlag\":\"\",\"scenePhoto\":\"\",\"sex\":\"1\",\"telephone\":\"\"},\"returnCode\":0,\"returnDesc\":\"请求成功\",\"signString\":\"b2a6526c8452450dd13ec42c5434ce70\",\"timestamp\":\"1702368709\"}");
    }

    //{"key":"2c5f6a0779294434b20eddc103d192fe","body":{"appId":"c1004004de6c458f9462ccb38779f15f","nonceStr":"0314318818","orgCode":"552e2400d3a2416fa7a534c7d13da516","timestamp":"CFF8F6B79478AF49FC93916B3AF93831","version":"V1.1.0"}}
    //{"key":"2c5f6a0779294434b20eddc103d192fe","body":{"appMode":"2","medStepCode":"000000","qrCode":"4B9F2BBAD9C36F35E69081BC503DF12EBFDF4F930FC00AF22A517818B811527D:1","terminalCode":"xlsyysm001"}}
    @RequestMapping("/api/sign")
    public void apiSign(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        if (read.contains("appId")) {
            response.getWriter().write("{\"code\":0,\"message\":\"请求成功\",\"result\":\"7b8b4eb7c7038d7c1352820b838bf9f9\"}");
        }
        if (read.contains("appMode")) {
            response.getWriter().write("{\"code\":0,\"message\":\"请求成功\",\"result\":\"41b65194988fe035ea11b7d2b22290a5\"}");
        }

    }

    //{"key":"2c5f6a0779294434b20eddc103d192fe","params":"1702368496898"}
    @RequestMapping("/api/encrypt")
    public void apiEncrypt(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\"code\":0,\"message\":\"请求成功\",\"result\":\"CFF8F6B79478AF49FC93916B3AF93831\"}");
    }

    @RequestMapping("/api/deciphering")
    public void apiDeciphering(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        if (read.contains("888075546EA7EC7398132ABBD35A7C8CF9A244F5773A9ADE")) {
            //{"key":"2c5f6a0779294434b20eddc103d192fe","params":"888075546EA7EC7398132ABBD35A7C8CF9A244F5773A9ADE"}
            response.getWriter().write("{\"code\":0,\"message\":\"请求成功\",\"result\":\"130184199210010075\"}");
        }
        if (read.contains("FBD293812FA5C29E91E400DB48B84DBE")) {
            //{"key":"2c5f6a0779294434b20eddc103d192fe","params":"FBD293812FA5C29E91E400DB48B84DBE"}
            response.getWriter().write("{\"code\":0,\"message\":\"请求成功\",\"result\":\"张兆峰\"}");
        }
        if (read.contains("40CF6027DF9628B2A665790A52A2A656")) {
            //{"key":"2c5f6a0779294434b20eddc103d192fe","params":"40CF6027DF9628B2A665790A52A2A656"}
            response.getWriter().write("{\"code\":0,\"message\":\"请求成功\",\"result\":\"15333217067\"}");
        }

    }

    @RequestMapping("/test")
    public void downReport(HttpServletResponse httpServletResponse) throws IOException {
        download(httpServletResponse,"e://aa.png","bb.png");
    }

    @RequestMapping("/encryptionMachine/encryptionMachineBusiness/safeMessageAuth")
    public void safeMessageAuth(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("application/json; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
        response.getWriter().write("{\n" +
                "\t\"msg\":\"操作成功\",\n" +
                "\t\"code\":\"0\",\n" +
                "\t\"data\":\"<HEADER>V1.0|00000081720230831095314188|202308311018436569|410100006|410100006|410100006|00000081720230831095314568|026|20230831101843|0|0|0|交易成功，业务成功<MAC>CB703270705A3DCDB90435B2D1CE68C3<END>\"\n" +
                "}");
    }

    @RequestMapping("/hnCardService/services/CardService")
    public void CardService(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("text/xml; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
//        response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
//                "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
//                "  <soapenv:Body>\n" +
//                "    <allDsjkResponse xmlns=\"http://server.wei.com\">\n" +
//                "      <allDsjkReturn>&lt;r&gt;sIVZi+1XdvBMOE1Jbh6tzA==&lt;/r&gt;</allDsjkReturn>\n" +
//                "    </allDsjkResponse>\n" +
//                "  </soapenv:Body>\n" +
//                "</soapenv:Envelope>");

//        response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
//                "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
//                "  <soapenv:Body>\n" +
//                "    <allDsjkResponse xmlns=\"http://server.wei.com\">\n" +
//                "      <allDsjkReturn>&lt;r&gt;pHUeExJE2V5T0M3KFEdO9yageSnULZJK6poLEuW+yJ74SPOvv/xg5pNUQ1QFjy7om6c4Hr9BdtJyf2mLUXHTtA==&lt;/r&gt;</allDsjkReturn>\n" +
//                "    </allDsjkResponse>\n" +
//                "  </soapenv:Body>\n" +
//                "</soapenv:Envelope>");

        if(read.contains("getRysj")){
            response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                    "  <soapenv:Body>\n" +
                    "    <allDsjkResponse xmlns=\"http://server.wei.com\">\n" +
                    "      <allDsjkReturn>&lt;r&gt;ijEQnkWi0pHIoM+MmnZ3XYk3YiaQEW9RQJnlIhrUtMC/p+Izq2xkO4n6ymKv2HGYowlNPGO9yIHquAjs0ohNvI9ECvF0+kWbEtNs4+jLybSOvGdvClC3khDzuC3Erajp8qKqYqfqrZnJ1EjWpwEjTZ2OkcB/inDXckvi4+yzDp4cfk3DSsG4eBQEaoxP/8nXgTHSoscIt0DCPpxCGR8dJGmRkhu/KfY12QNflcltm1Ly0GOqtcmce3LvRJAYj5LAFYcHz467gffTO7hLSK6uTur6oVElm0YBgvhP1yPsYpLlPfDzDzaSb25WsUW9m6Q0vMp9mYdyoi853AKylNbvwIr6UScgaEb7qQ8ye+FCcPK6zwvkqIx948ZDe/a0L0DfCF9yaZ1FCkEXfQhurGT0i3WYhzifdnUwsI6N4BrSfbc=&lt;/r&gt;</allDsjkReturn>\n" +
                    "    </allDsjkResponse>\n" +
                    "  </soapenv:Body>\n" +
                    "</soapenv:Envelope>");
        }

        if(read.contains("getCard01")){//ok
            response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                    "  <soapenv:Body>\n" +
                    "    <allDsjkResponse xmlns=\"http://server.wei.com\">\n" +
                    "      <allDsjkReturn>&lt;r&gt;ATDoQMyo5k1o/xGk498icQ==&lt;/r&gt;</allDsjkReturn>\n" +
                    "    </allDsjkResponse>\n" +
                    "  </soapenv:Body>\n" +
                    "</soapenv:Envelope>");
        }

        if(read.contains("getPhoto")){//<ERR>OK</ERR><AAC002>412723********8633</AAC002><AAC003>郭秋华</AAC003><PHOTO>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</PHOTO>
            response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                    "  <soapenv:Body>\n" +
                    "    <allDsjkResponse xmlns=\"http://server.wei.com\">\n" +
                        "      <allDsjkReturn>&lt;r&gt;zVkquifHrQbaWrQII7PYLKCeR5IHD5JpxHHCXZg7NoPAuZsutmFcEGEPIZTLhYdypkkEYllMB/qmQfbAZAHnIA==&lt;/r&gt;</allDsjkReturn>\n" +
                    "    </allDsjkResponse>\n" +
                    "  </soapenv:Body>\n" +
                    "</soapenv:Envelope>");
        }

        if(read.contains("getAC01")){
            response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                    "  <soapenv:Body>\n" +
                    "    <allDsjkResponse xmlns=\"http://server.wei.com\">\n" +
                    "      <allDsjkReturn>&lt;r&gt;OlpF+fmBlG2/CuEpK6eiLWjvMvzI1DRiqc998qIKyx328fjnmUda5POgnVNpajchd3+Vx8P/Ho/Pdu53avQQZd1QeLPmMu8swFYB+cgFL4JzJrhrFcQPQQW0Riy1pSwMzdA8Lcpc2OrR4f+jU0vkxW/rW4Jaqz93XZYDFP86ejTbmy8Ma7ujwV8ySVKr19so9EcFN+ZcgUFvR25pw0DLvgZC29mXYa0/3pRkHk04bL/gM2JDobv7ejm2cDzklWnsc4jteAF2ByzC7kfRc2aL4FJPIVpxgnZugvpdd6Sg8OcP/TgYxZqy4NpbLifRseaL+lXIZpruI9RJeTozGeMhy1UDcAdpuWr71Xl6S9TynKljpMswjdYQ8HxMEeEbv44+G1d6cHnNy+Eo74gs95Anfh86/fC5KyOph2ZVc1EoDm6bHWCiiFNq3MHOrec5lD+TNmh11/4ypmwEdsADB8tElu30SF/iL+i+LgLTbQ13TV8r+44wRkaEkLIMZgn3Mo5TxJbRgPnDY1g/NAwDdvg8S7qPwop9YlpZXhkTyN0FkOdtuMs2gt9XVlkP5JDSX6gno98Ru0xBnesYYJAZT+xN8IoUf2Sohu95K5XfjbQgF/HXCvDbkj1KjY7QBocJmV3W4EbbXiltMD/YHTYOqutL/K4HDwAMNrNMts5Z5v+nzoFZ51l54xPq5VLx99ASvcWst+koL43V0mzZtL3vdFkG2D2YRUSo0urM0zjV+fdkWiwNMpHvw4llzr5QwNbm1OoTmt9VDwYGbwFmrkKSSUcd0TYfkw4xl9mp2nWtZNVmnMdiRdkYKsejbFwVEqAoSgL5+OVvVUFNm5+2syKsc8bIiBoEy/w/fNq5e6X5wu1GqnieuXawYVV9+VvGN+tqgZKS&lt;/r&gt;</allDsjkReturn>\n" +
                    "    </allDsjkResponse>\n" +
                    "  </soapenv:Body>\n" +
                    "</soapenv:Envelope>");
        }


    }

    @RequestMapping("/CCBUnionPayService.asmx")
    public void KWSService(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("text/xml; charset=utf-8");
        String read = IoUtil.read(request.getInputStream(), "utf-8");
//        if(read.contains("CreateOrder")){
//            response.getWriter().write("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
//                    "   <soap:Body>\n" +
//                    "      <CreateOrderResponse xmlns=\"http://tempuri.org/\">\n" +
//                    "\t\t<CreateOrderResult>true</CreateOrderResult>\n" +
//                    "\t\t<orderid>202310110329237920942567</orderid>\n" +
//                    "      </CreateOrderResponse>\n" +
//                    "   </soap:Body>\n" +
//                    "</soap:Envelope>");
//        }
//
//        if(read.contains("PAY100")){
//            response.getWriter().write("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
//                    "   <soap:Body>\n" +
//                    "      <PAY100Response xmlns=\"http://tempuri.org/\">\n" +
//                    "         <PAY100Result>\n" +
//                    "            <RESULT>Y</RESULT>\n" +
//                    "            <ORDERID>202310110329237920942561</ORDERID>\n" +
//                    "            <AMOUNT>0.01</AMOUNT>\n" +
//                    "            <WAITTIME/>\n" +
//                    "            <ERRCODE/>\n" +
//                    "            <ERRMSG/>\n" +
//                    "            <SIGN>4f88c4f6b28e55bdb3fd954dfa77c815d9d20f0f1504e87811cabc332b2e4b26bed955a388fb92b2d6929f36479eb22de5e36d4d91c57ae594e973b25c339de53db869a0292cd95775adc9b98301584380a42b67b4e5a4752baea28acbb1bf80905906fd008a5f5c5190dd598401e3744298af7f4ef64327da925208523a47b8</SIGN>\n" +
//                    "         </PAY100Result>\n" +
//                    "      </PAY100Response>\n" +
//                    "   </soap:Body>\n" +
//                    "</soap:Envelope>");
//        }


















        if(read.contains("CreateOrder")){
            response.getWriter().write("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
            "   <soap:Body>\n" +
            "      <CreateOrderResponse xmlns=\"http://tempuri.org/\">\n" +
            "\t\t<CreateOrderResult>true</CreateOrderResult>\n" +
            "\t\t<orderid>202310110329237920942567</orderid>\n" +
            "      </CreateOrderResponse>\n" +
            "   </soap:Body>\n" +
            "</soap:Envelope>");
        }



        if(read.contains("CreateQrCode")){
            response.getWriter().write("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
                    "   <soap:Body>\n" +
                    "      <CreateQrCodeResponse xmlns=\"http://tempuri.org/\">\n" +
                    "         <CreateQrCodeResult>\n" +
                    "            <SUCCESS>true</SUCCESS>\n" +
                    "            <ERRMSG>创建二维码成功!</ERRMSG>\n" +
                    "            <QRURL>https://ibsbjstar.ccb.com.cn/CCBIS/QR?QRCODE=CCB9980003899638377869901</QRURL>\n" +
                    "            <QRCODE>Qk32</QRCODE>\n" +
                    "         </CreateQrCodeResult>\n" +
                    "      </CreateQrCodeResponse>\n" +
                    "   </soap:Body>\n" +
                    "</soap:Envelope>");
        }
        Random random = new Random();
        int randomNumber = random.nextInt(10) + 1;
        if(read.contains("QueryOrder") && (randomNumber % 2 == 0)){
            response.getWriter().write("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
                    "   <soap:Body>\n" +
                    "      <QueryOrderResponse xmlns=\"http://tempuri.org/\">\n" +
                    "         <QueryOrderResult>\n" +
                    "            <RESULT>Q</RESULT>\n" +
                    "            <ORDERID>202310110329237920942576</ORDERID>\n" +
                    "            <AMOUNT>0.01</AMOUNT>\n" +
                    "            <ERRMSG>创建二维码待支付</ERRMSG>\n" +
                    "         </QueryOrderResult>\n" +
                    "      </QueryOrderResponse>\n" +
                    "   </soap:Body>\n" +
                    "</soap:Envelope>");
        }

        if(read.contains("QueryOrder") && (randomNumber % 2 == 1)){
            response.getWriter().write("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
                    "   <soap:Body>\n" +
                    "      <QueryOrderResponse xmlns=\"http://tempuri.org/\">\n" +
                    "         <QueryOrderResult>\n" +
                    "            <RESULT>Y</RESULT>\n" +
                    "            <ORDERID>202310110329237920942576</ORDERID>\n" +
                    "            <AMOUNT>0.01</AMOUNT>\n" +
                    "            <ERRMSG>创建二维码待支付</ERRMSG>\n" +
                    "         </QueryOrderResult>\n" +
                    "      </QueryOrderResponse>\n" +
                    "   </soap:Body>\n" +
                    "</soap:Envelope>");
        }
    }

    public void download(HttpServletResponse response, String pdfPath, String fileName) throws IOException {
        // 设置信息给客户端不解析
        String type = new MimetypesFileTypeMap().getContentType(pdfPath);
        // 设置contenttype，即告诉客户端所发送的数据属于什么类型
        response.setHeader("Content-type",type);
        // 设置编码
        String code = new String(fileName.getBytes("utf-8"), "iso-8859-1");
        // 设置扩展头，当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
        response.setHeader("Content-Disposition", "attachment;filename=" + code);
        response.setContentType("application/octet-stream;charset=ISO8859-1");
        response.addHeader("Pargam", "no-cache");
        response.addHeader("Cache-Control", "no-cache");
        download(pdfPath, response);
    }

    public void download(String pdfPath, HttpServletResponse res) throws IOException {
        // 发送给客户端的数据
        // 读取filename
        File file = new File(pdfPath);
        long length = file.length();
        res.addHeader("Content-Length",String.valueOf(length));
        OutputStream outputStream = res.getOutputStream();
        byte[] buff = new byte[1024];
        BufferedInputStream bis = null;
        FileInputStream inputStream = new FileInputStream(file);
        bis = new BufferedInputStream(inputStream);
        int i = bis.read(buff);
        while (i != -1) {
            outputStream.write(buff, 0, buff.length);
            outputStream.flush();
            i = bis.read(buff);
        }
        bis.close();
        outputStream.close();
    }
}
